<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Global Body Planner: PlannerClass Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Global Body Planner
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classPlannerClass-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">PlannerClass Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A directed graph class with supplemental methods to aid in sample-based planning.  
 <a href="classPlannerClass.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="planner__class_8h_source.html">planner_class.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for PlannerClass:</div>
<div class="dyncontent">
<div class="center"><img src="classPlannerClass__inherit__graph.png" border="0" usemap="#PlannerClass_inherit__map" alt="Inheritance graph"/></div>
<map name="PlannerClass_inherit__map" id="PlannerClass_inherit__map">
<area shape="rect" id="node2" href="classGraphClass.html" title="A general directed graph class. " alt="" coords="10,5,101,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for PlannerClass:</div>
<div class="dyncontent">
<div class="center"><img src="classPlannerClass__coll__graph.png" border="0" usemap="#PlannerClass_coll__map" alt="Collaboration graph"/></div>
<map name="PlannerClass_coll__map" id="PlannerClass_coll__map">
<area shape="rect" id="node2" href="classGraphClass.html" title="A general directed graph class. " alt="" coords="10,5,101,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a763a406cc7de35136be1173d982002cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlannerClass.html#a763a406cc7de35136be1173d982002cc">PlannerClass</a> ()</td></tr>
<tr class="memdesc:a763a406cc7de35136be1173d982002cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for <a class="el" href="classPlannerClass.html" title="A directed graph class with supplemental methods to aid in sample-based planning. ...">PlannerClass</a>.  <a href="#a763a406cc7de35136be1173d982002cc">More...</a><br /></td></tr>
<tr class="separator:a763a406cc7de35136be1173d982002cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab21f5561a5a1f1e7c730defd9020bdd1"><td class="memItemLeft" align="right" valign="top"><a id="ab21f5561a5a1f1e7c730defd9020bdd1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlannerClass.html#ab21f5561a5a1f1e7c730defd9020bdd1">~PlannerClass</a> ()</td></tr>
<tr class="memdesc:ab21f5561a5a1f1e7c730defd9020bdd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor for <a class="el" href="classPlannerClass.html" title="A directed graph class with supplemental methods to aid in sample-based planning. ...">PlannerClass</a>. <br /></td></tr>
<tr class="separator:ab21f5561a5a1f1e7c730defd9020bdd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3318cad627515b8d53ffc00b59a0868"><td class="memItemLeft" align="right" valign="top">State&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlannerClass.html#ab3318cad627515b8d53ffc00b59a0868">randomState</a> (<a class="el" href="classFastTerrainMap.html">FastTerrainMap</a> &amp;terrain)</td></tr>
<tr class="memdesc:ab3318cad627515b8d53ffc00b59a0868"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random state by sampling from within the bounds of the terrain.  <a href="#ab3318cad627515b8d53ffc00b59a0868">More...</a><br /></td></tr>
<tr class="separator:ab3318cad627515b8d53ffc00b59a0868"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a592ec6733d33b831cb554f33a4e66da0"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlannerClass.html#a592ec6733d33b831cb554f33a4e66da0">neighborhoodN</a> (State s, int N)</td></tr>
<tr class="memdesc:a592ec6733d33b831cb554f33a4e66da0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the closest N vertices to the specified state by Euclidean distance.  <a href="#a592ec6733d33b831cb554f33a4e66da0">More...</a><br /></td></tr>
<tr class="separator:a592ec6733d33b831cb554f33a4e66da0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca845b0227f18a294051c904cafbabf"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlannerClass.html#a4ca845b0227f18a294051c904cafbabf">neighborhoodDist</a> (State q, double dist)</td></tr>
<tr class="memdesc:a4ca845b0227f18a294051c904cafbabf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the vertices within the specified Euclidean distance of the specified state.  <a href="#a4ca845b0227f18a294051c904cafbabf">More...</a><br /></td></tr>
<tr class="separator:a4ca845b0227f18a294051c904cafbabf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3a09a7a370a8826d313e5a8834d2058"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlannerClass.html#ae3a09a7a370a8826d313e5a8834d2058">getNearestNeighbor</a> (State q)</td></tr>
<tr class="memdesc:ae3a09a7a370a8826d313e5a8834d2058"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the closest verticex to the specified state by Euclidean distance.  <a href="#ae3a09a7a370a8826d313e5a8834d2058">More...</a><br /></td></tr>
<tr class="separator:ae3a09a7a370a8826d313e5a8834d2058"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classGraphClass"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classGraphClass')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classGraphClass.html">GraphClass</a></td></tr>
<tr class="memitem:a39d78244b77de2351494de80b28e7dbe inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a39d78244b77de2351494de80b28e7dbe">GraphClass</a> ()</td></tr>
<tr class="memdesc:a39d78244b77de2351494de80b28e7dbe inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for <a class="el" href="classGraphClass.html" title="A general directed graph class. ">GraphClass</a>.  <a href="classGraphClass.html#a39d78244b77de2351494de80b28e7dbe">More...</a><br /></td></tr>
<tr class="separator:a39d78244b77de2351494de80b28e7dbe inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a967bdb911867f3c1bf2fff50d4e578ac inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top"><a id="a967bdb911867f3c1bf2fff50d4e578ac"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a967bdb911867f3c1bf2fff50d4e578ac">~GraphClass</a> ()</td></tr>
<tr class="memdesc:a967bdb911867f3c1bf2fff50d4e578ac inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor for <a class="el" href="classGraphClass.html" title="A general directed graph class. ">GraphClass</a>. <br /></td></tr>
<tr class="separator:a967bdb911867f3c1bf2fff50d4e578ac inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14de7afdfc42f444e9dc60f860a3c8bf inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a14de7afdfc42f444e9dc60f860a3c8bf">addVertex</a> (int index, State s)</td></tr>
<tr class="memdesc:a14de7afdfc42f444e9dc60f860a3c8bf inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new vertex to the graph along with its state data.  <a href="classGraphClass.html#a14de7afdfc42f444e9dc60f860a3c8bf">More...</a><br /></td></tr>
<tr class="separator:a14de7afdfc42f444e9dc60f860a3c8bf inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acee0de6e69a0f56f878c62ac986270b5 inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">State&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#acee0de6e69a0f56f878c62ac986270b5">getVertex</a> (int index)</td></tr>
<tr class="memdesc:acee0de6e69a0f56f878c62ac986270b5 inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the state stored at a particular index in the graph.  <a href="classGraphClass.html#acee0de6e69a0f56f878c62ac986270b5">More...</a><br /></td></tr>
<tr class="separator:acee0de6e69a0f56f878c62ac986270b5 inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b7b7d5f761e5b4e9ec8aec8eab82385 inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a4b7b7d5f761e5b4e9ec8aec8eab82385">getNumVertices</a> ()</td></tr>
<tr class="memdesc:a4b7b7d5f761e5b4e9ec8aec8eab82385 inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the total number of vertices in the graph, computed as the size of the vertices vector.  <a href="classGraphClass.html#a4b7b7d5f761e5b4e9ec8aec8eab82385">More...</a><br /></td></tr>
<tr class="separator:a4b7b7d5f761e5b4e9ec8aec8eab82385 inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9d39ec62febc8b866c596f6672f5423 inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#ac9d39ec62febc8b866c596f6672f5423">addEdge</a> (int idx1, int idx2)</td></tr>
<tr class="memdesc:ac9d39ec62febc8b866c596f6672f5423 inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new edge to the graph.  <a href="classGraphClass.html#ac9d39ec62febc8b866c596f6672f5423">More...</a><br /></td></tr>
<tr class="separator:ac9d39ec62febc8b866c596f6672f5423 inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6775293717a51d5c223b5f6b3a9425a inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#ac6775293717a51d5c223b5f6b3a9425a">removeEdge</a> (int idx1, int idx2)</td></tr>
<tr class="memdesc:ac6775293717a51d5c223b5f6b3a9425a inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove an edge of the graph.  <a href="classGraphClass.html#ac6775293717a51d5c223b5f6b3a9425a">More...</a><br /></td></tr>
<tr class="separator:ac6775293717a51d5c223b5f6b3a9425a inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89494d00972f1c5969d8950f79006cd8 inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a89494d00972f1c5969d8950f79006cd8">getPredecessor</a> (int idx)</td></tr>
<tr class="memdesc:a89494d00972f1c5969d8950f79006cd8 inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the parent of a vertex.  <a href="classGraphClass.html#a89494d00972f1c5969d8950f79006cd8">More...</a><br /></td></tr>
<tr class="separator:a89494d00972f1c5969d8950f79006cd8 inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c3ccc590257faefb72bd8f40991ab40 inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a7c3ccc590257faefb72bd8f40991ab40">getSuccessors</a> (int idx)</td></tr>
<tr class="memdesc:a7c3ccc590257faefb72bd8f40991ab40 inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the children of a vertex.  <a href="classGraphClass.html#a7c3ccc590257faefb72bd8f40991ab40">More...</a><br /></td></tr>
<tr class="separator:a7c3ccc590257faefb72bd8f40991ab40 inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafacca2abff7f17df66e5b2f6b441c98 inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#aafacca2abff7f17df66e5b2f6b441c98">addAction</a> (int idx, Action a)</td></tr>
<tr class="memdesc:aafacca2abff7f17df66e5b2f6b441c98 inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an action to a particular vertex. This is the action that lead to this particular vertex from its parent.  <a href="classGraphClass.html#aafacca2abff7f17df66e5b2f6b441c98">More...</a><br /></td></tr>
<tr class="separator:aafacca2abff7f17df66e5b2f6b441c98 inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3aba9c56f1bd8db4c0977a24af090fae inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">Action&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a3aba9c56f1bd8db4c0977a24af090fae">getAction</a> (int idx)</td></tr>
<tr class="memdesc:a3aba9c56f1bd8db4c0977a24af090fae inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the action of a vertex.  <a href="classGraphClass.html#a3aba9c56f1bd8db4c0977a24af090fae">More...</a><br /></td></tr>
<tr class="separator:a3aba9c56f1bd8db4c0977a24af090fae inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae87d58394dc58f56bd4f619193423046 inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#ae87d58394dc58f56bd4f619193423046">updateGValue</a> (int idx, double val)</td></tr>
<tr class="memdesc:ae87d58394dc58f56bd4f619193423046 inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the g-value of a vertex and propogate to all its successors.  <a href="classGraphClass.html#ae87d58394dc58f56bd4f619193423046">More...</a><br /></td></tr>
<tr class="separator:ae87d58394dc58f56bd4f619193423046 inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fc85a70bacd5bc07043adfeb91797fa inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a6fc85a70bacd5bc07043adfeb91797fa">getGValue</a> (int idx)</td></tr>
<tr class="memdesc:a6fc85a70bacd5bc07043adfeb91797fa inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the g-value of a vertex.  <a href="classGraphClass.html#a6fc85a70bacd5bc07043adfeb91797fa">More...</a><br /></td></tr>
<tr class="separator:a6fc85a70bacd5bc07043adfeb91797fa inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab42104d73d16306f192bcbdbdee0a476 inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#ab42104d73d16306f192bcbdbdee0a476">printVertex</a> (State s)</td></tr>
<tr class="memdesc:ab42104d73d16306f192bcbdbdee0a476 inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the state information via stdout.  <a href="classGraphClass.html#ab42104d73d16306f192bcbdbdee0a476">More...</a><br /></td></tr>
<tr class="separator:ab42104d73d16306f192bcbdbdee0a476 inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15db17f1fe9b72aab16dd95cc550d618 inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top"><a id="a15db17f1fe9b72aab16dd95cc550d618"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a15db17f1fe9b72aab16dd95cc550d618">printVertices</a> ()</td></tr>
<tr class="memdesc:a15db17f1fe9b72aab16dd95cc550d618 inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the all vertices in the graph via stdout. <br /></td></tr>
<tr class="separator:a15db17f1fe9b72aab16dd95cc550d618 inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d85a75ccf6cf96e903031945fb485a2 inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a5d85a75ccf6cf96e903031945fb485a2">printIncomingEdges</a> (int idx)</td></tr>
<tr class="memdesc:a5d85a75ccf6cf96e903031945fb485a2 inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the edges leading to a vertex via stdout.  <a href="classGraphClass.html#a5d85a75ccf6cf96e903031945fb485a2">More...</a><br /></td></tr>
<tr class="separator:a5d85a75ccf6cf96e903031945fb485a2 inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48810d79a69b01ea94a03b87ed7f02fd inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top"><a id="a48810d79a69b01ea94a03b87ed7f02fd"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a48810d79a69b01ea94a03b87ed7f02fd">printEdges</a> ()</td></tr>
<tr class="memdesc:a48810d79a69b01ea94a03b87ed7f02fd inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the all edges in the graph via stdout. <br /></td></tr>
<tr class="separator:a48810d79a69b01ea94a03b87ed7f02fd inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6478d431f475c2458f3aa1a803a0b1cd inherit pub_methods_classGraphClass"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a6478d431f475c2458f3aa1a803a0b1cd">init</a> (State s)</td></tr>
<tr class="memdesc:a6478d431f475c2458f3aa1a803a0b1cd inherit pub_methods_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the graph by adding the root vertex (idx = 0) and setting g(idx) = 0.  <a href="classGraphClass.html#a6478d431f475c2458f3aa1a803a0b1cd">More...</a><br /></td></tr>
<tr class="separator:a6478d431f475c2458f3aa1a803a0b1cd inherit pub_methods_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classGraphClass"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classGraphClass')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classGraphClass.html">GraphClass</a></td></tr>
<tr class="memitem:a4ce5071e5d6f7f58965d0babf0c05cba inherit pro_attribs_classGraphClass"><td class="memItemLeft" align="right" valign="top"><a id="a4ce5071e5d6f7f58965d0babf0c05cba"></a>
std::unordered_map&lt; int, State &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a4ce5071e5d6f7f58965d0babf0c05cba">vertices</a></td></tr>
<tr class="memdesc:a4ce5071e5d6f7f58965d0babf0c05cba inherit pro_attribs_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map from vertex indices to corresponding states. <br /></td></tr>
<tr class="separator:a4ce5071e5d6f7f58965d0babf0c05cba inherit pro_attribs_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af72e4666fa9283cd4c3d4acfccbcfd57 inherit pro_attribs_classGraphClass"><td class="memItemLeft" align="right" valign="top"><a id="af72e4666fa9283cd4c3d4acfccbcfd57"></a>
std::unordered_map&lt; int, Action &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#af72e4666fa9283cd4c3d4acfccbcfd57">actions</a></td></tr>
<tr class="memdesc:af72e4666fa9283cd4c3d4acfccbcfd57 inherit pro_attribs_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map from vertex indices to the actions leading to those vertices. <br /></td></tr>
<tr class="separator:af72e4666fa9283cd4c3d4acfccbcfd57 inherit pro_attribs_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab931f0784548afda6c934ac3b097cebd inherit pro_attribs_classGraphClass"><td class="memItemLeft" align="right" valign="top"><a id="ab931f0784548afda6c934ac3b097cebd"></a>
std::unordered_map&lt; int, std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#ab931f0784548afda6c934ac3b097cebd">edges</a></td></tr>
<tr class="memdesc:ab931f0784548afda6c934ac3b097cebd inherit pro_attribs_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map from vertex indices to their parent(s) <br /></td></tr>
<tr class="separator:ab931f0784548afda6c934ac3b097cebd inherit pro_attribs_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e6c5c4d16682dafe430d71b0f8678a5 inherit pro_attribs_classGraphClass"><td class="memItemLeft" align="right" valign="top"><a id="a2e6c5c4d16682dafe430d71b0f8678a5"></a>
std::unordered_map&lt; int, std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a2e6c5c4d16682dafe430d71b0f8678a5">successors</a></td></tr>
<tr class="memdesc:a2e6c5c4d16682dafe430d71b0f8678a5 inherit pro_attribs_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map from vertex indices to their children. <br /></td></tr>
<tr class="separator:a2e6c5c4d16682dafe430d71b0f8678a5 inherit pro_attribs_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75a6a398215073b3e67b852cc136bd53 inherit pro_attribs_classGraphClass"><td class="memItemLeft" align="right" valign="top"><a id="a75a6a398215073b3e67b852cc136bd53"></a>
std::unordered_map&lt; int, double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraphClass.html#a75a6a398215073b3e67b852cc136bd53">g_values</a></td></tr>
<tr class="memdesc:a75a6a398215073b3e67b852cc136bd53 inherit pro_attribs_classGraphClass"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map from vertex indices to their costs (g-values) <br /></td></tr>
<tr class="separator:a75a6a398215073b3e67b852cc136bd53 inherit pro_attribs_classGraphClass"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A directed graph class with supplemental methods to aid in sample-based planning. </p>
<p>This class inherits <a class="el" href="classGraphClass.html" title="A general directed graph class. ">GraphClass</a>, and adds method to add random states to the graph and search for neighbors. These functions are useful for sample-based planners such as RRTs or PRMs. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a763a406cc7de35136be1173d982002cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a763a406cc7de35136be1173d982002cc">&#9670;&nbsp;</a></span>PlannerClass()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PlannerClass::PlannerClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor for <a class="el" href="classPlannerClass.html" title="A directed graph class with supplemental methods to aid in sample-based planning. ...">PlannerClass</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>Constructed object of type <a class="el" href="classPlannerClass.html" title="A directed graph class with supplemental methods to aid in sample-based planning. ...">PlannerClass</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ae3a09a7a370a8826d313e5a8834d2058"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3a09a7a370a8826d313e5a8834d2058">&#9670;&nbsp;</a></span>getNearestNeighbor()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int PlannerClass::getNearestNeighbor </td>
          <td>(</td>
          <td class="paramtype">State&#160;</td>
          <td class="paramname"><em>q</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the closest verticex to the specified state by Euclidean distance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>State to query the neighborhood </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Index of closest vertex </dd></dl>

</div>
</div>
<a id="a4ca845b0227f18a294051c904cafbabf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ca845b0227f18a294051c904cafbabf">&#9670;&nbsp;</a></span>neighborhoodDist()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; int &gt; PlannerClass::neighborhoodDist </td>
          <td>(</td>
          <td class="paramtype">State&#160;</td>
          <td class="paramname"><em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the vertices within the specified Euclidean distance of the specified state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>State to query the neighborhood </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dist</td><td>distance threshold for the neighborhood </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vector of indices included in the neighborhood </dd></dl>

</div>
</div>
<a id="a592ec6733d33b831cb554f33a4e66da0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a592ec6733d33b831cb554f33a4e66da0">&#9670;&nbsp;</a></span>neighborhoodN()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; int &gt; PlannerClass::neighborhoodN </td>
          <td>(</td>
          <td class="paramtype">State&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>N</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the closest N vertices to the specified state by Euclidean distance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>State to query the neighborhood </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">N</td><td>Number of vertices to include in the neighborhood </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vector of indices included in the neighborhood </dd></dl>

</div>
</div>
<a id="ab3318cad627515b8d53ffc00b59a0868"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3318cad627515b8d53ffc00b59a0868">&#9670;&nbsp;</a></span>randomState()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">State PlannerClass::randomState </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classFastTerrainMap.html">FastTerrainMap</a> &amp;&#160;</td>
          <td class="paramname"><em>terrain</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generate a random state by sampling from within the bounds of the terrain. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">terrain</td><td>Height map of the terrain </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Newly generated random state </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>include/global_body_planner/<a class="el" href="planner__class_8h_source.html">planner_class.h</a></li>
<li>src/planner_class.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
